package com.imooc.coupon.converter;

import com.imooc.coupon.constant.CouponCategory;


import javax.persistence.AttributeConverter;
import javax.persistence.Converter;

/**
 * 优惠券分类枚举属性转换器
 * AttributeConverter<X, Y> X:是实体属性的类型，Y:是数据库中的属性类型
 * @Author Administrator
 * @Date 2021/6/7 21:42
 * @Version 1.0
 */
@Converter
public class CouponCategoryConverter implements AttributeConverter<CouponCategory, String> {
    /**
     * 将枚举的实体转换为数据库中存储的字段类型
     * @param couponCategory
     * @return
     */
    @Override
    public String convertToDatabaseColumn(CouponCategory couponCategory) {
        return couponCategory.getCode();
    }

    /**
     * 将数据库中的属性转化为枚举对应的值
     * @param s
     * @return
     */
    @Override
    public CouponCategory convertToEntityAttribute(String s) {
        return CouponCategory.of(s);
    }
}
